namespace octalforty.Componento.Core.ObjectModel
{
    public enum Platform
    {
        /// <summary>
        /// Microsoft .NET Framework.
        /// </summary>
        [PlatformMetadata(".net;net;netfx")]
        NetFramework,

        /// <summary>
        /// Shared Source Common Language Infrastructure.
        /// </summary>
        /// <remarks>
        /// The Shared Source Common Language Infrastructure (SSCLI), previously codenamed Rotor, is Microsoft's 
        /// shared source implementation of the CLI, the core of .NET.
        /// <para />
        /// http://en.wikipedia.org/wiki/Shared_Source_Common_Language_Infrastructure
        /// </remarks>
        [PlatformMetadata("sscli")]
        Sscli,

        /// <summary>
        /// Microsoft .NET Compact Framework.
        /// </summary>
        /// <remarks>
        /// The Microsoft .NET Compact Framework (.NET CF) is a version of the .NET Framework that is designed to run 
        /// on Windows CE based mobile/embedded devices such as PDAs, mobile phones, factory controllers, set-top boxes, etc.
        /// </remarks>
        [PlatformMetadata(".netcf;netcf")]
        NetCompactFramework,

        /// <summary>
        /// Microsoft .NET Micro Framework.
        /// </summary>
        /// <remarks>
        /// The .NET Micro Framework is a .NET platform for extremely resource-constrained devices.
        /// </remark>s
        [PlatformMetadata(".netmf;netmf")]
        NetMicroFramework,

        /// <summary>
        /// redFIVElabs Net60.
        /// </summary>
        /// <remarks>
        /// Net60 is redFIVElabs' commercial implementation of .NET Compact Network on Symbian-based devices.
        /// </remarks>
        [PlatformMetadata(".net60;net60")]
        Net60,

        /// <summary>
        /// Microsoft Silverlight.
        /// </summary>
        /// <remarks>
        /// Microsoft Silverlight is a web application framework developed by Microsoft.
        /// </remarks>
        [PlatformMetadata("sl")]
        Silverlight,

        /// <summary>
        /// Portable.NET
        /// </summary>
        /// <remarks>
        /// Portable.NET is a free software and open source software initiative aiming to build a portable toolchain 
        /// and runtime for Common Language Infrastructure applications.
        /// </remarks>
        [PlatformMetadata("pn")]
        PortableNet,

        /// <summary>
        /// Mono.
        /// </summary>
        /// <remarks>
        /// Mono development platform is an open source implementation of CLI and 
        /// accompanying technologies, sponsored by Novell.
        /// </remarks>
        Mono,

        /// <summary>
        /// Windows Phone 7.
        /// </summary>
        [PlatformMetadata("wp;wp7")]
        WindowsPhone7
    }
}